package db;

import java.util.ArrayList;
import java.util.List;
import org.hibernate.Query;

public class Ainesosa extends Item {

	private int id;
	private String nimi;

	public Ainesosa() {}
	public Ainesosa(String nimi) { setNimi(nimi); }

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getNimi() {
		return nimi;
	}

	public final void setNimi(String nimi) {
		this.nimi = nimi;
	}

	public static Ainesosa searchExactMatch(String nimi) {
		Query q = DatabaseAccess.getInstance().createQuery(
			"FROM db.Ainesosa as ainesosa WHERE "
			+ "ainesosa.nimi = :nimi"
		);

		q.setParameter("nimi", nimi);
		return (Ainesosa) q.uniqueResult();
	}

	public static List<Ainesosa> search(String nimi) {
		Query q = DatabaseAccess.getInstance().createQuery(
			"FROM db.Ainesosa as ainesosa WHERE "
			+ "ainesosa.nimi LIKE :nimi"
		);

		q.setParameter("nimi", "%" + nimi + "%");
		return q.list();
	}

	public static List<Ainesosa> search(String[] nimet) {
		if (nimet == null || nimet.length == 0) {
			return null;
		}

		List<Ainesosa> ainesosat = new ArrayList<Ainesosa>();

		for (String nimi : nimet) {
			if (nimi != null && !nimi.isEmpty()) {
				ainesosat.addAll(search(nimi));
			}
		}

		return ainesosat;
	}

	@Override
	public String toString() {
		return getNimi();
	}
}
